medical firmware linux embedded medical device firmware development outsourcing bpo consulting outsource software medical device software